'''
本代码实现了一个互转的功能的命令行，无视av bv开头大小写
'''


def dec(x):
    r = 0
    for i in range(6):
        r += tr[x[s[i]]] * 58 ** i
    return (r - add) ^ xor


def enc(x):
    x = (x ^ xor) + add
    r = list('BV1  4 1 7  ')
    for i in range(6):
        r[s[i]] = table[x // 58 ** i % 58]
    return ''.join(r)



table = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'
tr = {}
for i in range(58):
    tr[table[i]] = i

s = [11, 10, 3, 8, 4, 6]
xor = 177451812
add = 8728348608
print("AV号与BV号互换")
print("使用exit退出")


raw = input("请输入AV或BV号： ")
if raw[0:2] == 'BV':
    print('AV' + str(dec(raw)))
elif raw[0:2] == 'bv':
    print('AV' + str(dec(('BV' + raw[2:len(raw)]))))
elif raw[0:4] == 'exit':
    pass
else:
    print("输入错误")
